package com.lvkerry.generate;

import com.github.stuxuhai.jpinyin.PinyinException;
import com.github.stuxuhai.jpinyin.PinyinFormat;
import com.github.stuxuhai.jpinyin.PinyinHelper;
import com.lvkerry.generate.bean.NameBean;


import java.util.*;

/**
 * @author Kerry on 18/03/07
 */

public class UserName {
    private static String[] firsts = {"李", "王", "张", "刘", "陈", "杨", "赵", "黄", "周", "吴",
            "徐", "孙", "胡", "朱", "高", "林", "何", "郭", "马", "罗",
            "梁", "宋", "郑", "谢", "韩", "唐", "冯", "于", "董", "萧",
            "程", "曹", "袁", "邓", "许", "傅", "沈", "曾", "彭", "吕",
            "苏", "卢", "蒋", "蔡", "贾", "丁", "魏", "薛", "叶", "阎",
            "余", "潘", "杜", "戴", "夏", "钟", "汪", "田", "任", "姜",
            "范", "方", "石", "姚", "谭", "廖", "邹", "熊", "金", "陆",
            "郝", "孔", "白", "崔", "康", "毛", "邱", "秦", "江", "史",
            "顾", "侯", "邵", "孟", "龙", "万", "段", "漕", "钱", "汤",
            "尹", "黎", "易", "常", "武", "乔", "贺", "赖", "龚", "文"};
    private static String[] names = {"梦竹", "千凡", "寄琴", "采波", "元冬", "思菱", "平卉", "笑柳", "雪卉", "南蓉", "谷梦", "巧兰", "绿蝶",
            "飞荷", "平安", "孤晴", "芷荷", "曼冬", "寻巧", "寄波", "尔槐", "以旋", "绿蕊", "初夏", "依丝", "怜南", "千山",
            "雨安", "水风", "寄柔", "念巧", "幼枫", "凡桃", "新儿", "春翠", "夏波", "雨琴", "静槐", "元槐", "映阳", "飞薇",
            "小凝", "映寒", "傲菡", "谷蕊", "笑槐", "飞兰", "笑卉", "迎荷", "元冬", "书竹", "半烟", "绮波", "小之", "觅露",
            "夜雪", "春柔", "寒梦", "尔风", "白梅", "雨旋", "芷珊", "山彤", "尔柳", "沛柔", "灵萱", "沛凝", "白容", "乐蓉",
            "映安", "依云", "映冬", "凡雁", "梦秋", "醉柳", "梦凡", "秋巧", "若云", "元容", "怀蕾", "灵寒", "天薇", "白风",
            "访波", "亦凝", "易绿", "夜南", "曼凡", "亦巧", "青易", "冰真", "白萱", "友安", "诗翠", "雪珍", "海之", "小蕊",
            "又琴", "香彤", "语梦", "惜蕊", "迎彤", "沛白", "雁山", "易蓉", "雪晴", "诗珊", "春冬", "又绿", "冰绿", "半梅",
            "笑容", "沛凝", "念瑶", "天真", "含巧", "如冬", "向真", "从蓉", "春柔", "亦云", "向雁", "尔蝶", "冬易", "丹亦",
            "夏山", "醉香", "盼夏", "孤菱", "安莲", "问凝", "冬萱", "晓山", "雁蓉", "梦蕊", "山菡", "南莲", "飞双", "凝丝",
            "思萱", "怀梦", "雨梅", "冷霜", "向松", "迎丝", "迎梅", "听双", "山蝶", "夜梅", "醉冬", "巧云", "雨筠", "平文",
            "青文", "半蕾", "幼菱", "寻梅", "含之", "香之", "含蕊", "亦玉", "靖荷", "碧萱", "寒云", "向南", "书雁", "怀薇",
            "思菱", "忆文", "翠巧", "怀山", "若山", "向秋", "凡白", "绮烟", "从蕾", "天曼", "又亦", "依琴", "曼彤", "沛槐",
            "又槐", "元绿", "安珊", "夏之", "易槐", "宛亦", "白翠", "丹云", "问寒", "易文", "傲易", "青旋", "思真", "妙之",
            "半双", "若翠", "初兰", "怀曼", "惜萍", "初之", "宛丝", "寄南", "小萍", "幻儿", "千风", "天蓉", "雅青", "寄文",
            "代天", "春海", "惜珊", "向薇", "冬灵", "惜芹", "凌青", "谷芹", "香巧", "雁桃", "映雁", "书兰", "盼香", "向山",
            "寄风", "访烟", "绮晴", "傲柔", "寄容", "以珊", "紫雪", "芷容", "书琴", "寻桃", "涵阳", "怀寒", "易云", "采蓝",
            "代秋", "惜梦", "尔烟", "谷槐", "怀莲", "涵菱", "水蓝", "访冬", "半兰", "又柔", "寒香", "小凡", "代亦", "梦露",
            "映波", "友蕊", "寄凡", "怜蕾", "雁枫", "水绿", "曼荷", "笑珊", "寒珊", "谷南", "慕儿", "夏岚", "友儿", "小萱",
            "紫青", "妙菱", "冬寒", "曼柔", "语蝶", "青筠", "夜安", "觅海", "问安", "晓槐", "雅山", "访云", "翠容", "寒凡",
            "晓绿", "以菱", "冬云", "含玉", "访枫", "含卉", "夜白", "冷安", "灵竹", "醉薇", "元珊", "幻波", "盼夏", "元瑶",
            "迎曼", "水云", "访琴", "谷波", "乐之", "笑白", "之山", "妙海", "紫霜", "平夏", "凌旋", "孤丝", "怜寒", "向萍",
            "凡松", "青丝", "翠安", "如天", "凌雪", "绮菱", "代云", "南莲", "寻南", "春文", "香薇", "冬灵", "凌珍", "采绿",
            "天春", "沛文", "紫槐", "幻柏", "采文", "春梅", "雪旋", "盼海", "映梦", "安雁", "映容", "凝阳", "访风", "天亦",
            "平绿", "盼香", "觅风", "小霜", "雪萍", "半雪", "山柳", "谷雪", "靖易", "白薇", "梦菡", "飞绿", "如波", "又晴",
            "友易", "香菱", "冬亦", "问雁", "妙春", "海冬", "半安", "平春", "幼柏", "秋灵", "凝芙", "念烟", "白山", "从灵",
            "尔芙", "迎蓉", "念寒", "翠绿", "翠芙", "靖儿", "妙柏", "千凝", "小珍", "天巧", "妙旋", "雪枫", "夏菡", "元绿",
            "痴灵", "绮琴", "雨双", "听枫", "觅荷", "凡之", "晓凡", "雅彤", "香薇", "孤风", "从安", "绮彤", "之玉", "雨珍",
            "幻丝", "代梅", "香波", "青亦", "元菱", "海瑶", "飞槐", "听露", "梦岚", "幻竹", "新冬", "盼翠", "谷云", "忆霜",
            "水瑶", "慕晴", "秋双", "雨真", "觅珍", "丹雪", "从阳", "元枫", "痴香", "思天", "如松", "妙晴", "谷秋", "妙松",
            "晓夏", "香柏", "巧绿", "宛筠", "碧琴", "盼兰", "小夏", "安容", "青曼", "千儿", "香春", "寻双", "涵瑶", "冷梅",
            "秋柔", "思菱", "醉波", "醉柳", "以寒", "迎夏", "向雪", "香莲", "以丹", "依凝", "如柏", "雁菱", "凝竹", "宛白",
            "初柔", "南蕾", "书萱", "梦槐", "香芹", "南琴", "绿海", "沛儿", "晓瑶", "听春", "凝蝶", "紫雪", "念双", "念真",
            "曼寒", "凡霜", "飞雪", "雪兰", "雅霜", "从蓉", "冷雪", "靖巧", "翠丝", "觅翠", "凡白", "乐蓉", "迎波", "丹烟",
            "梦旋", "书双", "念桃", "夜天", "海桃", "青香", "恨风", "安筠", "觅柔", "初南", "秋蝶", "千易", "安露", "诗蕊", "山雁", "友菱", "香露"};


    public static Set<NameBean> generateUsername(int count) {
        int first = firsts.length;
        int second = names.length;

        Set<NameBean> users = new LinkedHashSet<>();
        Random random = new Random();
        while (users.size() < count) {

            String firstName = firsts[random.nextInt(first)];
            String secondName = names[random.nextInt(second)];
            try {
                String secondNamePy = PinyinHelper.convertToPinyinString(secondName, "", PinyinFormat.WITHOUT_TONE);
                String firstNamePy = PinyinHelper.convertToPinyinString(firstName, "", PinyinFormat.WITHOUT_TONE);
                NameBean nb = new NameBean(firstName + secondName, secondNamePy + firstNamePy);
                users.add(nb);
            } catch (PinyinException e) {
                e.printStackTrace();
            }
        }
        return users;
    }

}
